import unittest

"""
 @author adun
 @date 2020/10/28 16:50
"""


class MyTestCase(unittest.TestCase):
    def test_something(self):
        self.assertEqual(True, False)

    # 循环遍历字符串
    # 甚至连字符串都是可迭代的对象，它们包含一系列的字符：
    def test_for_string(self):
        for x in "banana":
            print(x)

    # break 语句
    # 通过使用 break 语句，我们可以在循环遍历所有项目之前停止循环：
    def test_for_break(self):
        fruits = ["apple", "banana", "cherry"]
        # 有区别
        for fruit in fruits:
            if fruit == "banana":
                break
            print(fruit)
        print("===============================")
        for x in fruits:
            print(x)
            if x == "banana":
                break

    # range() 函数
    # 如需循环一组代码指定的次数，我们可以使用 range() 函数，
    #
    # range() 函数返回一个数字序列，默认情况下从 0 开始，并递增 1（默认地），并以指定的数字结束。
    # 注意：range(10) 不是 0 到 10 的值，而是值 0 到 9。
    #
    # range() 函数默认 0 为起始值，不过可以通过添加参数来指定起始值：range(3, 10)，这意味着值为 3 到 10（但不包括 10）：
    # range() 函数默认将序列递增 1，但是可以通过添加第三个参数来指定增量值：range(2, 30, 3)：
    def test_for_range(self):
        for x in range(3, 50, 6):
            print(x)

    # or 循环中的 Else
    # for 循环中的 else 关键字指定循环结束时要执行的代码块：
    def test_for_else(self):
        for x in range(10):
            print(x)
        else:
            print("Finally finished!")



    # 嵌套循环
    # 嵌套循环是循环内的循环。
    #
    # “外循环”每迭代一次，“内循环”将执行一次：
    def test_nested_for(self):
        adj = ["red", "big", "tasty"]
        fruits = ["apple", "banana", "cherry"]

        for x in adj:
            for y in fruits:
                print(x, y)

    # pass 语句
    # for 语句不能为空，但是如果您处于某种原因写了无内容的 for 语句，请使用 pass 语句来避免错误。
    def test_for_pass(self):
        for x in [0, 1, 2]:
            pass


if __name__ == '__main__':
    unittest.main()
